
package com.hlkj.pay.service.merchant;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import com.hlkj.framework.common.pojo.PageResult;
import com.hlkj.pay.dto.merchant.MerchantNoticeDto;
import com.hlkj.pay.dto.merchant.NoticePageQueryDto;
import com.hlkj.pay.enums.CommonEnum;
import com.hlkj.pay.infrastructure.model.merchant.MerchantNoticeDO;
import com.hlkj.pay.infrastructure.model.merchant.NoticeDO;

import java.util.List;

/**
 * @author HlpayTeam
 * @date 2024/11/06 16:32
 */
public interface INoticeService {

    /**
     *
     * @param noticePageQueryDto
     * @return
     */
    PageResult<NoticeDO> queryPage(NoticePageQueryDto noticePageQueryDto);

    /**
     *
     * @param noticeDO
     */
    void addNotice(NoticeDO noticeDO);

    /**
     *
     * @param id
     * @return
     */
    NoticeDO queryById(Long id);

    /**
     *
     * @param noticeDO
     */
    void updateNotice(NoticeDO noticeDO);

    /**
     *
     * @param id
     */
    void deleteNotice(Long id);

    /**
     *
     * @param id
     * @param status
     */
    void updateStatus(Long id, Integer status);

    /**
     * 
     * @param merchantNoticeList
     */
    void addMerchantNotice(List<MerchantNoticeDO> merchantNoticeList);
    /**
     *
     * @param id
     * @return
     */
    MerchantNoticeDO queryMerchantNoticeById(Long id);
    /**
     *
     * @param id
     * @param code
     */
    void updateMerchantNoticeStatus(Long id, Integer code);
    /**
     *
     * @param noticePageQueryDto
     * @return
     */
    PageResult<MerchantNoticeDto> queryMerchantPage(NoticePageQueryDto noticePageQueryDto);
    /**
     *
     * @param ids
     * @param yesNoType
     */
	void updateSyncType(List<Long> ids, CommonEnum.YES_NO_TYPE yesNoType);
}
